package org.zgflex.desktop
{
	import flash.display.DisplayObject;
	
	/**
	 * The interface to be implemented by desktop in order to have the possibility<b/>
	 * to select, deselect and toggle icons, and also to view the currently selected icons and all icons in the desktop.
	 * @author dankok
	 * 
	 */	
	public interface IIconSelector
	{
				
		/**
		 * Selects an icon.
		 * @param icon
		 * 
		 */		
		function selectIcon(icon:DisplayObject):void;
		
		/**
		 * Deselects an icon.
		 * @param icon
		 * 
		 */		
		function deselectIcon(icon:DisplayObject):void;
		
		/**
		 * Toggles icons selected state.
		 * @param icon
		 * 
		 */		
		function toggleIcon(icon:DisplayObject):void;
		
		/**
		 * Deselects all icons.
		 * 
		 */		
		function deselectAllIcons():void;
		
		/**
	     * Gets the icons iterator.
	     * @return 
	     * 
	     */
	    function get iconsIterator():ArrayIterator;
		
		/**
	     * Gets the selected icons iterator.
	     * @return 
	     * 
	     */
	    function get selectedIconsIterator():ArrayIterator;
	    
	    /**
		 * Brings icon to front by maximizing its z-index.
		 * @param icon
		 * 
		 */		
		function bringToFront(icon:DisplayObject):void;
	}
}